/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Topka;

import java.util.List;

/**
 *
 * @author Asko
 */
public class Topochka<T> {

    T ob; // объявляет объект типа Т
    // Передает конструктору ссылку на 
    // объект типа
    Topochka(T o) {
        ob = o;
    }
    // Возвращает объект 

    T getob() {
        return ob;
    }

    // Показывает тип Т.
    void showType() {
        System.out.println("Type of T is " + ob.getClass().getName());
    }
}

class Mime <K,T,V> { 
   
    K k ;
    T t ;
    V v ;
    
    Mime (K k , T t, V v) {
    this.k = k ;
    this.t = t ;
    this.v = v ;
    }
}
// Демонстрирует настраиваемый класс. 
class Dynamics<T extends List> {
    T t ;

    public Dynamics(T t) {
        this.t = t;
    }
    
    public T getT (){
        return t ;
    }
    
    public void setT(T t) {
        this.t = t ;
    }
    
}
// Демонстрирует настраиваемый класс. 
class TopochkaDemo {

    public static void main(String args[]) {
        // Создает ссылку на Topochka для объектов типа Integer.
        Topochka<Integer> iOb;
        // Создает объект типа Topochka<Integer> и присваивает
        // ссылку на него iOb.  Обратите внимание на использование
        // автоупаковки (autoboxing)
        // для инкапсуляции значения 88 в объекте типа Integer.
        iOb = new Topochka<Integer>(88);
        // Показывает тип данных iOb.
        iOb.showType();
        // Получает значение, хранящееся в iOb. Обратите внимание на то,
        // что не требуется никакого приведения типов.
        int v = iOb.getob();
        System.out.println("value: " + v);

        System.out.println();
        // Создает объект типа Topochka для строк.
        Topochka<String> strOb = new Topochka<String>("Topochkaerics Test");

        // Показывает тип данных переменной strOb.
        strOb.showType();

        // Получает значение, хранящееся в strOb. И опять
        // никакого приведения типов не требуется. 
        String str = strOb.getob();
        System.out.println("value: " + str);
    }
}
